package com.ruoyi.roomType.domain;

import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 房型信息对象 wdm_room_type
 * 
 * @author ruoyi
 * @date 2025-09-21
 */
public class RoomType extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 房型ID */
    private Long roomTypeId;

    /** 房型名称 */
    @Excel(name = "房型名称")
    private String roomName;

    /** 英文名称 */
    @Excel(name = "英文名称")
    private String englishName;

    /** 房型分类（0=基础房型 1=高级房型） */
    @Excel(name = "房型分类", readConverterExp = "0==基础房型,1==高级房型")
    private String roomClass;

    /** 早餐类型（0=无早餐 1=含单早 2=含双早） */
    @Excel(name = "早餐类型", readConverterExp = "0==无早餐,1==含单早,2==含双早")
    private String breakfastType;

    /** 房型面积 */
    @Excel(name = "房型面积")
    private BigDecimal floorArea;

    /** 最大入住人数 */
    @Excel(name = "最大入住人数")
    private Long maxOccupancy;

    /** 起始楼层 */
    @Excel(name = "起始楼层")
    private Long startFloor;

    /** 结束楼层 */
    @Excel(name = "结束楼层")
    private Long endFloor;

    /** 状态（0=正常 1=禁用） */
    @Excel(name = "状态", readConverterExp = "0==正常,1==禁用")
    private String status;

    /** 删除标志（0=存在 2=删除） */
    private String delFlag;

    /** 版本号（乐观锁，每次更新自增） */
    @Excel(name = "版本号", readConverterExp = "乐观锁，每次更新自增")
    private Long version;

    /** 商家ID */
    @Excel(name = "商家ID")
    private Long merchantId;

    /** 排序序号 */
    @Excel(name = "排序序号")
    private Long sortOrder;

    /** 标记信息（1="热销",2="促销",3="新品"） */
    @Excel(name = "标记信息", readConverterExp = "1==热销,2=促销,3=新品")
    private String tags;

    /** 基础配置信息 */
    @Excel(name = "基础配置信息")
    private String config;

    /** 基础价格/晚 */
    @Excel(name = "基础价格/晚")
    private BigDecimal basePrice;

    /** 促销价格/晚 */
    @Excel(name = "促销价格/晚")
    private BigDecimal promoPrice;

    /** 封面图URL */
    @Excel(name = "封面图URL")
    private String coverImage;

    public void setRoomTypeId(Long roomTypeId) 
    {
        this.roomTypeId = roomTypeId;
    }

    public Long getRoomTypeId() 
    {
        return roomTypeId;
    }

    public void setRoomName(String roomName) 
    {
        this.roomName = roomName;
    }

    public String getRoomName() 
    {
        return roomName;
    }

    public void setEnglishName(String englishName) 
    {
        this.englishName = englishName;
    }

    public String getEnglishName() 
    {
        return englishName;
    }

    public void setRoomClass(String roomClass) 
    {
        this.roomClass = roomClass;
    }

    public String getRoomClass() 
    {
        return roomClass;
    }

    public void setBreakfastType(String breakfastType) 
    {
        this.breakfastType = breakfastType;
    }

    public String getBreakfastType() 
    {
        return breakfastType;
    }

    public void setFloorArea(BigDecimal floorArea) 
    {
        this.floorArea = floorArea;
    }

    public BigDecimal getFloorArea() 
    {
        return floorArea;
    }

    public void setMaxOccupancy(Long maxOccupancy) 
    {
        this.maxOccupancy = maxOccupancy;
    }

    public Long getMaxOccupancy() 
    {
        return maxOccupancy;
    }

    public void setStartFloor(Long startFloor) 
    {
        this.startFloor = startFloor;
    }

    public Long getStartFloor() 
    {
        return startFloor;
    }

    public void setEndFloor(Long endFloor) 
    {
        this.endFloor = endFloor;
    }

    public Long getEndFloor() 
    {
        return endFloor;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    public void setVersion(Long version) 
    {
        this.version = version;
    }

    public Long getVersion() 
    {
        return version;
    }

    public void setMerchantId(Long merchantId) 
    {
        this.merchantId = merchantId;
    }

    public Long getMerchantId() 
    {
        return merchantId;
    }

    public void setSortOrder(Long sortOrder) 
    {
        this.sortOrder = sortOrder;
    }

    public Long getSortOrder() 
    {
        return sortOrder;
    }

    public void setTags(String tags) 
    {
        this.tags = tags;
    }

    public String getTags() 
    {
        return tags;
    }

    public void setConfig(String config) 
    {
        this.config = config;
    }

    public String getConfig() 
    {
        return config;
    }

    public void setBasePrice(BigDecimal basePrice) 
    {
        this.basePrice = basePrice;
    }

    public BigDecimal getBasePrice() 
    {
        return basePrice;
    }

    public void setPromoPrice(BigDecimal promoPrice) 
    {
        this.promoPrice = promoPrice;
    }

    public BigDecimal getPromoPrice() 
    {
        return promoPrice;
    }

    public void setCoverImage(String coverImage) 
    {
        this.coverImage = coverImage;
    }

    public String getCoverImage() 
    {
        return coverImage;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("roomTypeId", getRoomTypeId())
            .append("roomName", getRoomName())
            .append("englishName", getEnglishName())
            .append("roomClass", getRoomClass())
            .append("breakfastType", getBreakfastType())
            .append("floorArea", getFloorArea())
            .append("maxOccupancy", getMaxOccupancy())
            .append("startFloor", getStartFloor())
            .append("endFloor", getEndFloor())
            .append("status", getStatus())
            .append("delFlag", getDelFlag())
            .append("version", getVersion())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .append("remark", getRemark())
            .append("merchantId", getMerchantId())
            .append("sortOrder", getSortOrder())
            .append("tags", getTags())
            .append("config", getConfig())
            .append("basePrice", getBasePrice())
            .append("promoPrice", getPromoPrice())
            .append("coverImage", getCoverImage())
            .toString();
    }
}
